/**
 * 语言配置文件
 * 集中管理所有支持的语言
 */

export interface LanguageConfig {
  code: string
  name: string
  nativeName: string
  flag?: string
  rtl?: boolean
}

// 支持的语言列表
export const SUPPORTED_LANGUAGES: LanguageConfig[] = [
  {
    code: 'zh-CN',
    name: 'Chinese (Simplified)',
    nativeName: '中文',
    flag: '🇨🇳'
  },
  {
    code: 'en-US',
    name: 'English',
    nativeName: 'English',
    flag: '🇺🇸'
  },
  {
    code: 'ar-SA',
    name: 'Arabic',
    nativeName: 'العربية',
    flag: '🇸🇦',
    rtl: true
  }
  // 添加新语言时，只需要在这里添加配置
  // {
  //   code: 'ja-JP',
  //   name: 'Japanese',
  //   nativeName: '日本語',
  //   flag: '🇯🇵'
  // },
  // {
  //   code: 'ko-KR',
  //   name: 'Korean',
  //   nativeName: '한국어',
  //   flag: '🇰🇷'
  // }
]

// 默认语言
export const DEFAULT_LANGUAGE = 'zh-CN'

// 获取语言代码列表（用于 Nuxt 配置）
export const getLanguageCodes = (): string[] => {
  return SUPPORTED_LANGUAGES.map(lang => lang.code)
}

// 获取语言配置对象列表（用于 Nuxt i18n 配置）
export const getLanguageConfigs = () => {
  return SUPPORTED_LANGUAGES.map(lang => ({
    code: lang.code,
    name: lang.name,
    nativeName: lang.nativeName
  }))
}

// 获取语言配置
export const getLanguageConfig = (code: string): LanguageConfig | undefined => {
  return SUPPORTED_LANGUAGES.find(lang => lang.code === code)
}

// 检查语言是否支持
export const isLanguageSupported = (code: string): boolean => {
  return SUPPORTED_LANGUAGES.some(lang => lang.code === code)
}

// 获取语言显示名称
export const getLanguageDisplayName = (code: string): string => {
  const config = getLanguageConfig(code)
  return config ? config.nativeName : code
}

// 检查语言是否为RTL
export const isRTLLanguage = (code: string): boolean => {
  const config = getLanguageConfig(code)
  return config?.rtl === true
}

// 获取所有RTL语言
export const getRTLLanguages = (): LanguageConfig[] => {
  return SUPPORTED_LANGUAGES.filter(lang => lang.rtl === true)
}
